// //
// // Created by dong on 2025/9/24.
// //
//
// #include <iostream>
// #include <cstdlib>
// #include "demo3.h"
// using namespace std;
//
//
// void test_one()
// {
//     // int* pstr = (int*) malloc(sizeof(int));
//     // if (pstr==NULL)
//     // {
//     //     return;
//     // }
//     // *pstr = 123;
//
//     //new
//     //单个变量内存申请
//     int* p = new int;
//     *p = 10;
//
//     cout << *p <<endl;
//
//     //申请内存并且初始化为123 用() 初始化
//     int* p1 = new int(123);
//
//
//     //delete
//     delete p;
//     delete p1;
//
//     //学会申请一段内存
//     int* array = new int[4];
//     //数组长度可以写变量  申请长度为4* sizeof int的内存
//     for (int i=0;i<4;i++)
//     {
//         array[i] = i;
//         cout << array[i] << endl;
//     }
//
//     //申请一段内存的释放操作
//     delete[] array;
//
//     //申请一段内存并初始化使用{}
//     int* parr = new int[4]{1,2,3,4};
//
//     for (int i=0;i<4;i++)
//     {
//         cout << parr[i] << endl;
//     }
//
//     delete[] parr;
//
//
//     //c++ 允许在已申请的内存上做new操作 内存池的概念
//
//     char* buff =new char[1024];
//
//     //从buff的首地址开始申请4个整数的内存操作数字
//     int* number = new(buff) int[4]{1,2,3,4};
//
//     // char* str  = new(buff+sizeof(int) * 4)char[10]{"iloveyou"};
//     char* str = new(number)char[10]{"iloveyou"};
//
//     for (int i=0;i<5;i++)
//     {
//         cout <<buff[i]<<endl;
//     }
//
//
//     delete[] buff;
//
// }
//
// //封装函数申请内存
// int* create_array(int arrayNum)
// {
//     int* array = new int[arrayNum]{0};
//     return array;
// }
//
// //指针的引用 int*& p 指针的引用
// void create_array(int*& p,int arrayNum)
// {
//     p = new int[arrayNum]{0};
// }
//
// struct Info
// {
//     int first;
//     int second;
//     //构造函数
// };
//
//
// void test_user_data()
// {
//     Info* f = new Info{1,2};
//
//     cout << f->first <<f->second << endl;
//     delete f;
// }
//
//
//
// int main()
// {
//     test_user_data();
//
//     // test_one();
//
//     // int *p = create_array(3);
//     // for (int i=0;i<3;i++)
//     // {
//     //     cout << p[i]<<endl;
//     // }
//     // delete p;
//     //
//     // int * array = nullptr;
//     // create_array(array,3);
//     // for (int i=0;i<3;i++)
//     // {
//     //     cout << array[i]<<endl;
//     // }
//     //
//     // delete array;
//
//
//     return 0;
// }